package com.manager.car.dao;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.springframework.orm.hibernate5.HibernateCallback;
import com.manager.car.po.NewsInfo;
import com.manager.car.util.PageModel;


public class NewsDaoImpl extends BaseDao<NewsInfo> implements INewsDao {

	private PageModel<NewsInfo> pageModel;
	
	public List<NewsInfo> queryAll(Integer typeid) {
		List<NewsInfo> list = this.queryByHql("from NewsInfo where newType=?",typeid);
		for(NewsInfo news:list) {
			news.setNewContent(news.getNewContent().substring(0,10));
		}
		return list;
	}
	
	@Override
	public NewsInfo queryById(Integer id) {
		this.getHibernateTemplate().get(NewsInfo.class,id);
		return super.queryById(id);
	}
	
	
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public PageModel<NewsInfo> queryall(final int pageNo ,final int pageSize,final int typeid) {
		 this.pageModel = (PageModel<NewsInfo>)this.getHibernateTemplate().execute(new HibernateCallback() {
			 String hql="from NewsInfo where newType="+typeid;
			public PageModel<NewsInfo> doInHibernate(Session session) throws HibernateException {
				List<NewsInfo> list = session.createQuery(hql)
						.setFirstResult((pageNo-1)*pageSize)
						.setMaxResults(pageSize)
						.list();
				List<NewsInfo> counts = session.createQuery(hql).list();
				int totalCount = counts.size();
				pageModel.setCode(0);
				pageModel.setCount(totalCount);
				pageModel.setMsg("分页");
				pageModel.setData(list);
				return pageModel;
			}
		});
		return pageModel;
	}

	public PageModel<NewsInfo> getPageModel() {
		return pageModel;
	}

	public void setPageModel(PageModel<NewsInfo> pageModel) {
		this.pageModel = pageModel;
	}
	
	
	
}
